package v2

import ll "go-arch/data-structures/linked-list"

type AbstractGraph struct {
	Vertexs ll.LinkedList
	Edges   ll.LinkedList
	Type    GraphType
}

func (a *AbstractGraph) GetType() GraphType {
	return a.Type
}

func (a *AbstractGraph) GetVertexNum() int {
	return a.Vertexs.Size()
}

func (a *AbstractGraph) GetEdgeNum() int {
	return a.Edges.Size()
}

func (a *AbstractGraph) GetVertex() chan Vertex {
	return nil
}

func (a *AbstractGraph) GetEdge() Iterator {
	panic("implement me")
}

func (a *AbstractGraph) RemoveVertex(vertex Vertex) {
	panic("implement me")
}

func (a *AbstractGraph) RemoveEdge(edge Edge) {
	panic("implement me")
}

func (a *AbstractGraph) InsertVertex(vertex Vertex) Node {
	panic("implement me")
}

func (a *AbstractGraph) InsertEdge(edge Edge) Node {
	panic("implement me")
}

func (a *AbstractGraph) AreAdjacent(u Vertex, v Vertex) bool {
	panic("implement me")
}

func (a *AbstractGraph) EdgeFromTo(u Vertex, v Vertex) Edge {
	panic("implement me")
}

func (a *AbstractGraph) AdjVertex(vertex Vertex) Iterator {
	panic("implement me")
}

func (a *AbstractGraph) DFSTraverse(vertex Vertex) Iterator {
	panic("implement me")
}

func (a *AbstractGraph) BFSTraverse(vertex Vertex) Iterator {
	panic("implement me")
}

func (a *AbstractGraph) ShortestPath(vertex Vertex) Iterator {
	panic("implement me")
}

func (a *AbstractGraph) GenerateMSG() error {
	panic("implement me")
}

func (a *AbstractGraph) TopologicalSort() (Iterator, error) {
	panic("implement me")
}

func (a *AbstractGraph) CriticalPath() error {
	panic("implement me")
}

func (a *AbstractGraph) AddWeightEdge(from Vertex, to Vertex, weight int) {
	panic("implement me")
}

func (a *AbstractGraph) Vertices() []Vertex {
	panic("implement me")
}
